From 191358fe4553ee2ccedba536f0c40a954bc42fd7 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 25 Aug 2016 11:34:25 +0300 Subject: [PATCH] Simplify lockfile tests --- tests/cargotest/support/mod.rs | 7 ++ tests/generate-lockfile.rs | 38 +++-------- tests/lockfile-compat.rs | 119 ++++++++++++++------------------- 3 files changed, 70 insertions(+), 94 deletions(-) diff --git a/tests/cargotest/support/mod.rs b/tests/cargotest/support/mod.rs index 8ade994c9..c99e8e294 100644 --- a/tests/cargotest/support/mod.rs +++ b/tests/cargotest/support/mod.rs @@ -181,6 +181,13 @@ impl ProjectBuilder { self } + pub fn read_lockfile(&self) -> String { + let mut buffer = String::new(); + fs::File::open(self.root().join("Cargo.lock")).unwrap() + .read_to_string(&mut buffer).unwrap(); + buffer + } + fn rm_root(&self) { self.root.rm_rf() } diff --git a/tests/generate-lockfile.rs b/tests/generate-lockfile.rs index ad4d207f7..94432e4f6 100644 --- a/tests/generate-lockfile.rs +++ b/tests/generate-lockfile.rs @@ -28,10 +28,8 @@ fn adding_and_removing_packages() { assert_that(p.cargo_process("generate-lockfile"), execs().with_status(0)); - let lockfile = p.root().join("Cargo.lock"); let toml = p.root().join("Cargo.toml"); - let mut lock1 = String::new(); - File::open(&lockfile).unwrap().read_to_string(&mut lock1).unwrap(); + let lock1 = p.read_lockfile(); // add a dep File::create(&toml).unwrap().write_all(br#" @@ -45,8 +43,7 @@ fn adding_and_removing_packages() { "#).unwrap(); assert_that(p.cargo("generate-lockfile"), execs().with_status(0)); - let mut lock2 = String::new(); - File::open(&lockfile).unwrap().read_to_string(&mut lock2).unwrap(); + let lock2 = p.read_lockfile(); assert!(lock1 != lock2); // change the dep @@ -58,8 +55,7 @@ fn adding_and_removing_packages() { "#).unwrap(); assert_that(p.cargo("generate-lockfile"), execs().with_status(0)); - let mut lock3 = String::new(); - File::open(&lockfile).unwrap().read_to_string(&mut lock3).unwrap(); + let lock3 = p.read_lockfile(); assert!(lock1 != lock3); assert!(lock2 != lock3); @@ -73,8 +69,7 @@ fn adding_and_removing_packages() { "#).unwrap(); assert_that(p.cargo("generate-lockfile"), execs().with_status(0)); - let mut lock4 = String::new(); - File::open(&lockfile).unwrap().read_to_string(&mut lock4).unwrap(); + let lock4 = p.read_lockfile(); assert_eq!(lock1, lock4); } @@ -105,25 +100,20 @@ bar = "baz" foo = "bar" "#; let lockfile = p.root().join("Cargo.lock"); - { - let mut lock = String::new(); - File::open(&lockfile).unwrap().read_to_string(&mut lock).unwrap(); - let data = lock + metadata; - File::create(&lockfile).unwrap().write_all(data.as_bytes()).unwrap(); - } + let lock = p.read_lockfile(); + let data = lock + metadata; + File::create(&lockfile).unwrap().write_all(data.as_bytes()).unwrap(); // Build and make sure the metadata is still there assert_that(p.cargo("build"), execs().with_status(0)); - let mut lock = String::new(); - File::open(&lockfile).unwrap().read_to_string(&mut lock).unwrap(); + let lock = p.read_lockfile(); assert!(lock.contains(metadata.trim()), "{}", lock); // Update and make sure the metadata is still there assert_that(p.cargo("update"), execs().with_status(0)); - let mut lock = String::new(); - File::open(&lockfile).unwrap().read_to_string(&mut lock).unwrap(); + let lock = p.read_lockfile(); assert!(lock.contains(metadata.trim()), "{}", lock); } @@ -153,10 +143,7 @@ fn preserve_line_endings_issue_2076() { assert_that(p.cargo("generate-lockfile"), execs().with_status(0)); - let mut lock0 = String::new(); - { - File::open(&lockfile).unwrap().read_to_string(&mut lock0).unwrap(); - } + let lock0 = p.read_lockfile(); assert!(lock0.starts_with("[root]\n")); @@ -168,10 +155,7 @@ fn preserve_line_endings_issue_2076() { assert_that(p.cargo("generate-lockfile"), execs().with_status(0)); - let mut lock2 = String::new(); - { - File::open(&lockfile).unwrap().read_to_string(&mut lock2).unwrap(); - } + let lock2 = p.read_lockfile(); assert!(lock2.starts_with("[root]\r\n")); assert_eq!(lock1, lock2); diff --git a/tests/lockfile-compat.rs b/tests/lockfile-compat.rs index 5fa34452b..f2296d902 100644 --- a/tests/lockfile-compat.rs +++ b/tests/lockfile-compat.rs @@ -2,9 +2,6 @@ extern crate cargotest; extern crate hamcrest; -use std::fs::File; -use std::io::prelude::*; - use cargotest::support::git; use cargotest::support::registry::Package; use cargotest::support::{execs, project, lines_match}; @@ -14,19 +11,6 @@ use hamcrest::assert_that; fn oldest_lockfile_still_works() { Package::new("foo", "0.1.0").publish(); - let p = project("bar") - .file("Cargo.toml", r#" - [project] - name = "bar" - version = "0.0.1" - authors = [] - - [dependencies] - foo = "0.1.0" - "#) - .file("src/lib.rs", ""); - p.build(); - let lockfile = r#" [root] name = "bar" @@ -40,15 +24,25 @@ name = "foo" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" "#; - File::create(p.root().join("Cargo.lock")).unwrap() - .write_all(lockfile.as_bytes()).unwrap(); + + let p = project("bar") + .file("Cargo.toml", r#" + [project] + name = "bar" + version = "0.0.1" + authors = [] + + [dependencies] + foo = "0.1.0" + "#) + .file("src/lib.rs", "") + .file("Cargo.lock", lockfile); + p.build(); assert_that(p.cargo("build"), execs().with_status(0)); - let mut lock = String::new(); - File::open(p.root().join("Cargo.lock")).unwrap() - .read_to_string(&mut lock).unwrap(); + let lock = p.read_lockfile(); assert!(lock.starts_with(lockfile.trim())); } @@ -66,10 +60,8 @@ fn totally_wild_checksums_works() { [dependencies] foo = "0.1.0" "#) - .file("src/lib.rs", ""); - p.build(); - - File::create(p.root().join("Cargo.lock")).unwrap().write_all(br#" + .file("src/lib.rs", "") + .file("Cargo.lock", r#" [root] name = "bar" version = "0.0.1" @@ -85,14 +77,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum baz 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "checksum" "checksum foo 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "checksum" -"#).unwrap(); +"#); + + p.build(); assert_that(p.cargo("build"), execs().with_status(0)); - let mut lock = String::new(); - File::open(p.root().join("Cargo.lock")).unwrap() - .read_to_string(&mut lock).unwrap(); + let lock = p.read_lockfile(); assert!(lock.starts_with(r#" [root] name = "bar" @@ -124,10 +116,8 @@ fn wrong_checksum_is_an_error() { [dependencies] foo = "0.1.0" "#) - .file("src/lib.rs", ""); - p.build(); - - t!(t!(File::create(p.root().join("Cargo.lock"))).write_all(br#" + .file("src/lib.rs", "") + .file("Cargo.lock", r#" [root] name = "bar" version = "0.0.1" @@ -142,7 +132,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum foo 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "checksum" -"#)); +"#); + + p.build(); assert_that(p.cargo("build"), execs().with_status(101).with_stderr("\ @@ -177,10 +169,8 @@ fn unlisted_checksum_is_bad_if_we_calculate() { [dependencies] foo = "0.1.0" "#) - .file("src/lib.rs", ""); - p.build(); - - t!(t!(File::create(p.root().join("Cargo.lock"))).write_all(br#" + .file("src/lib.rs", "") + .file("Cargo.lock", r#" [root] name = "bar" version = "0.0.1" @@ -195,7 +185,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [metadata] "checksum foo 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "" -"#)); +"#); + p.build(); assert_that(p.cargo("fetch"), execs().with_status(101).with_stderr("\ @@ -238,10 +229,8 @@ fn listed_checksum_bad_if_we_cannot_compute() { [dependencies] foo = {{ git = '{}' }} "#, git.url())) - .file("src/lib.rs", ""); - p.build(); - - let lockfile = format!(r#" + .file("src/lib.rs", "") + .file("Cargo.lock", &format!(r#" [root] name = "bar" version = "0.0.1" @@ -256,9 +245,9 @@ source = "git+{0}" [metadata] "checksum foo 0.1.0 (git+{0})" = "checksum" -"#, git.url()); - File::create(p.root().join("Cargo.lock")).unwrap() - .write_all(lockfile.as_bytes()).unwrap(); +"#, git.url())); + + p.build(); assert_that(p.cargo("fetch"), execs().with_status(101).with_stderr("\ @@ -296,9 +285,7 @@ fn current_lockfile_format() { assert_that(p.cargo("build"), execs().with_status(0)); - let mut actual = String::new(); - File::open(p.root().join("Cargo.lock")).unwrap() - .read_to_string(&mut actual).unwrap(); + let actual = p.read_lockfile(); let expected = "\ [root] @@ -327,19 +314,6 @@ source = \"registry+https://github.com/rust-lang/crates.io-index\" fn lockfile_without_root() { Package::new("foo", "0.1.0").publish(); - let p = project("bar") - .file("Cargo.toml", r#" - [package] - name = "bar" - version = "0.0.1" - authors = [] - - [dependencies] - foo = "0.1.0" - "#) - .file("src/lib.rs", ""); - p.build(); - let lockfile = r#"[[package]] name = "bar" version = "0.0.1" @@ -352,13 +326,24 @@ name = "foo" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" "#; - File::create(p.root().join("Cargo.lock")).unwrap() - .write_all(lockfile.as_bytes()).unwrap(); + + let p = project("bar") + .file("Cargo.toml", r#" + [package] + name = "bar" + version = "0.0.1" + authors = [] + + [dependencies] + foo = "0.1.0" + "#) + .file("src/lib.rs", "") + .file("Cargo.lock", lockfile); + + p.build(); assert_that(p.cargo("build"), execs().with_status(0)); - let mut lock = String::new(); - File::open(p.root().join("Cargo.lock")).unwrap() - .read_to_string(&mut lock).unwrap(); + let lock = p.read_lockfile(); assert!(lock.starts_with(lockfile.trim())); } -- 2.30.2